package cn.b.sky.mes.hr.dao;

import java.util.List;

import cn.b.sky.mes.hr.model.PersonnelType;
import cn.b.sky.mes.hr.model.condition.PersonnelTypeCondition;
import org.apache.ibatis.annotations.Param;

public interface PersonnelTypeDao {

  /**
   * 
   * <strong>Title : getPersonnelTypeListByCondition<br></strong>
   * <strong>Description : </strong>根据条件查询人员类型列表<br> 
   * <strong>Create on : 2016-3-28 上午11:15:29<br></strong>
   * <p>
   * @param condition
   * @return 
   * List<PersonnelType>
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<PersonnelType> getPersonnelTypeListByCondition(PersonnelTypeCondition condition);

  /**
   * 
   * <strong>Title : getPersonnelTypeCountByCondition<br></strong>
   * <strong>Description : </strong>人员类型 条数<br> 
   * <strong>Create on : 2016-3-28 上午11:15:34<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getPersonnelTypeCountByCondition(PersonnelTypeCondition condition);

  /**
   * 
   * <strong>Title : insertPersonnelType<br></strong>
   * <strong>Description : </strong>新增<br> 
   * <strong>Create on : 2016-3-25 下午1:48:36<br></strong>
   * <p>
   * @param personnelType
   * void
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertPersonnelType(PersonnelType personnelType);

  /**
   * 
   * <strong>Title : updatePersonnelType<br></strong>
   * <strong>Description : </strong>修改人员类型信息<br> 
   * <strong>Create on : 2016-3-25 下午3:59:56<br></strong>
   * <p>
   * @param personnelType
   * void
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updatePersonnelType(PersonnelType personnelType);

  /**
   * 
   * <strong>Title : deletePersonnelType<br></strong>
   * <strong>Description : </strong>删除人员类型<br> 
   * <strong>Create on : 2016-3-25 下午4:10:53<br></strong>
   * <p>
   * @param personnelType
   * void
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deletePersonnelType(PersonnelType personnelType);

  /**
   * 
   * <strong>Title : getPersonnelTypeByPk<br></strong>
   * <strong>Description : </strong>查询<br> 
   * <strong>Create on : 2016-3-25 下午1:48:17<br></strong>
   * <p>
   * @param siteCode
   * @param personnelTypeCode
   * @return
   * PersonnelType
   * @throws 
   * @author ZiQiang.Zhao<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  PersonnelType getPersonnelTypeByPk(@Param("siteCode") String siteCode,
      @Param("personnelTypeCode") String personnelTypeCode);

  /**
   * 
   * <strong>Title : getPersonnelTypeSuggestByCondition<br></strong>
   * <strong>Description : </strong>搜索建议查询<br> 
   * <strong>Create on : 2016-3-30 下午1:50:44<br></strong>
   * <p>
   * @param condition
   * @return
   * List<PersonnelType>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<PersonnelType> getPersonnelTypeSuggestByCondition(PersonnelTypeCondition condition);
}
